在這邊要介紹一下go的基本用法
而這些用法在A Tour of Go也都有介紹
在下面的程式碼如果有想測試的,也都可以貼到Go Playground來進行測試喔
但就讓我在這邊也再次描述一遍吧
在go的程式中,當你執行一個go的檔案,他會第一個跑的程式就是main
範例如下
package main
import "fmt"
func main() {
fmt.Println("Hello Main!")
}
func first() {
fmt.Println("Hello First")
}
https://play.golang.org/p/PwgrD2jABVf
他會印出 Hello Main
當你使用程式時,會需要依賴第三方的套件,就會需要使用import來讓程式知道你希望call的function要從哪裡來
而這些套件有什麼function可以讓你使用,可以到
https://pkg.go.dev/std
來查詢你想要的功能
在這邊以fmt為舉例
https://pkg.go.dev/fmt#pkg-index
這邊就有列出他可以使用的function
而我們剛剛在上述程式中使用的Println就是其中一個function
在go裡面,如果要宣告變數,有幾種方法
var x string
x = "Hello World!"
var y string = "Hello World!"
z := "Hello World!"
上述這三種宣告方法出來的內容皆會是一樣的
:= 是go的一個特別宣告的方式,就是可以自動將左邊的內容變成右邊的型態的變數,在這個方式下有幾個特別要注意的點
package main
import "fmt"
func swap(x string, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
}
package main
import "fmt"
func swap(x string, y string) (string, string) {
return y, x
}
func main() {
a, b := swap("hello", "world")
fmt.Println(a, b)
b, c := swap("foo", "bar")
fmt.Println(b, c)
b, c := swap("golang", "javascript") // Error!!
}
在golang裡面,他會預設檢查你是否有使用到所有的變數,如果沒使用到,他會跳出警告跟你說你沒用到這個變數,並不讓你編譯程式,但如果還是想要保留這個變數,就可以使用"_"來告訴編譯器說你有用到這個變數
失敗版
test := "Hello World!" // test declared but not used
成功版
test := "Hello World!"
_ = test
在golang裡面的if寫法跟其他的語言比較不一樣,不需要將條件做括號
a := 1
b := 2
if a > b {
fmt.Println("a is greater than b")
} else {
fmt.Println("a is smaller than b")
}
另外,在golang裡的if還有個特別的用法,就是可以在if前再放一段code,他的作用域就僅在if內,出去就取不到你裡面的內容了
if name := "john"; name != "" {
fmt.Println("name:", name) // name: john
}
fmt.Println("name:", name) // !!ERROR